1. Field of the Invention
This invention relates to a coding and decoding system, and more particularly to a channel coding and decoding system for digital mobile communication.
2. Description of the Related Art
Conventionally, when using a coding and decoding system which includes a coding apparatus and a decoding apparatus, particularly a channel coding and decoding system which is used for digital mobile communication, channel coding is used in order to prevent a variation of the received power (i.e., fading) or to prevent deterioration of the communication quality caused by interference from a user who uses the same frequency channel. Among various coding systems, a coding system which uses a convolutional code is frequently used. This is because a high error correction effect can be obtained even with a channel which exhibits a comparatively high bit error ratio (BER).
However, by using a convolutional code in the coding system sometimes gives rise to error in propagation due to the characteristics of the coding system. When only the coding system by a convolutional code is employed, occurrence of burst errors cannot be avoided when the received power is lowered significantly by fading or in other similar circumstances.
One method for preventing burst errors which is frequently used by interleaving which rearranges an information sequence with respect to its order. The method by interleaving signifies a method wherein, on the transmission side, an information sequence of a fixed amount is stored into a buffer and then re-arranged in order, and on the reception side, the information sequence is re-arranged to restore the original order thereof. Generally, as the interleave size, which is the size of the buffer, increases, the correction capacity of burst errors increases. However, there is a problem that, as the interleave size increases, a delay which arises upon decoding, increases.
Another method for reducing burst errors employs a concatenated code. The coding method using a concatenated code first performs error correction coding for an information sequence and then performs further coding for the error correction coded information sequence thereby to permit correction of burst errors efficiently. The coding performed first is called outer coding, and the coding performed second is called inner coding. In a concatenated code which is employed in order to reduce burst errors, a convolutional code is used for the inner code while a nonbinary block code where a block is partitioned into certain symbol units is used for the outer code. Here, one symbol is a unit of a fixed number of bits, and 8 bits are frequently used. However, one symbol is not necessarily limited to 8 bits.
FIGS. 1a and 1b are flow charts illustrating a conventional basic coding method using a concatenated code.
FIG. 1a is a flow chart illustrating processing on the transmission side. Nonbinary block coding is performed for an information sequence (step 110) and then convolutional coding is performed for a frame which is an information sequence thus produced (step 120). Conventionally, interleaving is sometimes performed after each coding in order to raise the error correction capacity, but this has not necessarily been essential.
FIG. 1b is a flow chart illustrating processing on the reception side. Decoding of convolutional codes is performed for a demodulated information sequence (step 130) and decoding of nonbinary block codes is performed for the decoded information sequence (step 140). In the nonbinary block codes, the number of error symbols which can be corrected in one frame is called error correction capability. Meanwhile, when the positions of error symbols are specified in one frame, the number of symbols whose errors can be corrected is called erasure decoding capability. The erasure decoding capability when decoding is performed using nonbinary block codes is equal to or higher than the error correction capability. Particularly when a code having a erasure decoding capability higher than the error correction capability is used as the outer code, decoding of a higher efficiency can be achieved by performing erasure decoding.
However, in order to effect erasure decoding, information for specifying the positions of error symbols is required. The SOVA (Soft Output Viterbi Algorithm) has been proposed which is a decoding system wherein, when convolutional codes are to be decoded using Viterbi decoding in an inner code, the reliability of decoded symbols is calculated, and then in decoding of the outer code, the reliability is utilized (J. Hagenauer and P. Hoeher, "A Viterbi Algorithm with Soft-Decision Outputs and its Applications", IEEE).
FIG. 2 is a flow chart illustrating decoding processing of the SOVA. In this system, in determining a survivor path in decoding of a convolutional code (step 210), reliability information 240 for each bit is calculated based on a metric of the path. Reliability information 240 represents by what degree a path, which has been determined as a survivor path, is reliable. Reliability information 240 is outputted together with decoding result 260. Then, symbol deinterleaving is performed while maintaining reliability information 240 for each bit, and decoding result 270 and deinterleaved reliability information 250 for each bit are outputted (step 220). Finally, when performing decoding of nonbinary block codes which are outer codes, decoding of deinterleaved decoding result 270 is performed using deinterleaved reliability information 250 for each bit (step 230).
In decoding of inner codes, a large amount of calculation is required in order to calculate reliability information for each bit. Meanwhile, in decoding of outer codes, since the reliability information for each bit is utilized, a large storage capacity is required. Further, since the amount of reliability information transmitted from a decoding apparatus for an inner code to a decoding apparatus for an outer code is large, there is a problem that a channel having a large capacity is required between the decoding apparatus for an inner code and the decoding apparatus for an outer code.